package 面向对象初级.HomeWork;

public class Employee01 {
    /**
     * 9、员工管理类-1
     * 案例：
     *  1、声明一个Employee员工类，
     *  包含属性：编号(id)、姓名(name)、薪资(salary)、年龄(age)，此时属性不私有化
     *  包含方法：
     *  （1）void printInfo()：可以打印员工的详细信息
     *  （2）void setInfo(int i, String n, double s, int a)：可以同时给id,name,salary,age赋值
     *  2、声明一个EmployeeManager类，包含如下方法：
     * （1）public void print(Emplyee[] all)：遍历打印员工数组中的每个员工的详细信息
     * （2）public void sort(Employee[] all)：将all员工数组按照年龄从高到低排序
     * （3）public void addSalary(Employee[] all, double increament)：将all员工数组的每一个员工的工资，
     * 增加increament
     *  3、声明Test05测试类
     * （1）public static void main(String[] args)：在main方法中，创建Employee[]数组，并创建5个员工对象
     * 放到数组中，并为员工对象的属性赋值
     * （2）创建EmployeeManager对象，
     * （3）调用print方法，显示员工信息
     * （4）调用sort方法对员工数组进行按照年龄排序，并调用print方法，显示员工信息
     * （5）调用addSalary方法给每一个员工加薪1000元，并调用print方法，显示员工信息
     */
        int id;
        String name;
        double salary;
        int age;

        // 打印员工详细信息
        void printInfo() {
            System.out.println("编号: " + id + ", 姓名: " + name + ", 薪资: " + salary + ", 年龄: " + age);
        }

        // 给员工属性赋值
        void setInfo(int i, String n, double s, int a) {
            id = i;
            name = n;
            salary = s;
            age = a;
        }
    }

    // 员工管理类
    class EmployeeManager {
        // 遍历打印员工数组中每个员工的详细信息
        public void print(Employee01[] all) {
            for (Employee01 employee : all) {
                employee.printInfo();
            }
        }

        // 将员工数组按照年龄从高到低排序
        public void sort(Employee01[] all) {
            for (int i = 0; i < all.length - 1; i++) {
                for (int j = 0; j < all.length - i - 1; j++) {
                    if (all[j].age < all[j + 1].age) {
                        Employee01 temp = all[j];
                        all[j] = all[j + 1];
                        all[j + 1] = temp;
                    }
                }
            }
        }

        // 给员工数组的每个员工增加工资
        public void addSalary(Employee01[] all, double increament) {
            for (Employee01 employee : all) {
                employee.salary += increament;
            }
        }
}
